Software Defined Networking (SDN) is an approach to computer networking that employs a split architecture network in which the forwarding (data) plane is decoupled from the control plane. The use of a split architecture network simplifies the network devices (e.g., switches) implementing the forwarding plane by shifting the intelligence of the network into one or more controllers that oversee the switches. SDN facilitates rapid and open innovation at the network layer by providing a programmable network infrastructure.
OpenFlow is a protocol that enables controllers and switches in an SDN network to communicate with each other. OpenFlow enables dynamic programming of flow control policies in the network.
In telecommunications networks for mobile devices, subscriber traffic typically traverses multiple network functions. One of the most common network functions is network address translation (NAT). NAT is a service that translates private Internet Protocol (IP) addresses into public IP addresses, and vice versa. NAT is typically used when subscribers access the Internet.
Currently, many Internet destinations are addressed using an IP version 4 (IPv4) address. In order for a subscriber (e.g., mobile subscriber) to access an Internet destination, the subscriber must be assigned a unique public IP address. However, the IPv4 addressing scheme does not provide a sufficient number of publicly routable addresses to provide a distinct IP address to every Internet device or service.
The IP address space is managed by the Internet Assigned Numbers Authority (IANA) globally, and by five regional Internet registries (RIR) that are responsible for assigning IP addresses to end users and local Internet registries (e.g., Internet service providers (ISPs)) in their respective designated territories. Top-level exhaustion of IPv4 addresses occurred on Jan. 31, 2011.
Since public IPv4 addresses are in short supply, subscribers cannot be assigned permanent public IPv4 addresses. NAT can be used to help mitigate the shortage of IPv4 addresses. A NAT device can be configured with a pool of public IPv4 addresses. When a subscriber wishes to access the Internet, the NAT device can dynamically assign a public IPv4 address from the pool to the subscriber. This IPv4 address allows the subscriber to setup a session with an Internet destination. Once the Internet session is over, the IPv4 address is returned to the pool.
In conventional SDN networks, all packets belonging to a subscriber flow in the data plane that requires NAT service need to traverse a NAT device. This results in additional packet processing latency due to latency introduced from buffering and copying packets at both the NAT device and the switches. This latency is in addition to the processing latency of performing the actual NAT on the packets.